/**
 * @file rk_aiq.h
 * @brief Rockchip AIQ service handling header.
 *
 * Encapsulates the initialization and de-initialization of the Rockchip
 * Image Quality tuning service (AIQ).
 */

#ifndef RK_AIQ_H
#define RK_AIQ_H

#include "uAPI2/rk_aiq_user_api2_isp39.h"

/**
 * @brief Initializes and starts the Rockchip AIQ service.
 *
 * @param sensor_entity_name The unique name of the sensor entity (e.g., "m02_b_imx219 6-0010").
 * @param iq_files_path Path to the directory containing IQ tuning files.
 * @param width The capture width for which to configure AIQ.
 * @param height The capture height for which to configure AIQ.
 * @return A handle to the AIQ context on success, NULL on failure.
 */
rk_aiq_sys_ctx_t *aiq_init(const char *sensor_entity_name, const char *iq_files_path, int width, int height);

/**
 * @brief Stops and de-initializes the Rockchip AIQ service.
 *
 * @param ctx The AIQ context handle to de-initialize.
 */
void aiq_deinit(rk_aiq_sys_ctx_t *ctx);

#endif // RK_AIQ_H

